In general, a computing device includes hardware and software or firmware. The hardware includes functionality to execute instructions of the software. Specifically, the hardware of the computer system includes functionality to perform operations specified by the software or firmware. Various types of hardware components exist. One type of hardware component is memory.
Different types of memory structures exist. A first type of memory structure receives an address, identifies the location in memory based on the address, and returns data located in the location in memory. Examples of the first type of memory include random access memory (RAM) or read only memory (ROM). A second type of memory structure is content addressable memory (CAM). A CAM is memory that receives data, compares the data to each entry in the CAM, and responds with an address in which the data is located. Thus, in contrast to a RAM or ROM that receives an address as input and produces data as output, a CAM receives data as input and responds with an address as output. Because of the number of comparisons to perform to identify the address, the total storage space for a CAM is typically on orders of magnitude much smaller than the total storage space for a RAM.